"""
题目：打印出所有的"水仙花数"，所谓"水仙花数"是指一个三位数，其各位数字立方和等于该数本身。例如：153是一个"水仙花数"，因为153=1的三次方＋5的三次方＋3的三次方。

程序分析：利用for循环控制100-999个数，每个数分解出个位，十位，百位。
"""


def threesquare(input):
    input = input*input*input
    return input
a = 0
b = 0
list = []
for x in range(100,1000):
    #x = 153

    # 取x的百位数
    h = x // 100
    # 取x的十位数
    t = (x % 100) // 10
    # 取x的个位数
    g = (x % 100) % 10
    if threesquare(h) + threesquare(t) + threesquare(g) == x:
        a =a + 1
        list.append(x)
        print("%d是水仙花数" % x)
    else:
        b += 1
        print("%d不是水仙花数" % x)


print("有{}个水仙花数".format(a),"分别是{}".format(list))
print("{}个非水仙花数".format(b))